package com.hc.ssm.feign;

import com.hc.ssm.pojo.Member;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;
/**
 *  @Component 注解作用于类，
 *  而 @Bean 注解作用于方法、 @Component 通常是通过路径扫描来自动侦测以及自动装配到
 *  Spring 容器中 (我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)
 */
/**
 * 降级的处理类
 */
@Component
public class IMemberFeignFallbackFactory implements FallbackFactory<IMemberFeign>  {


    @Override
    public IMemberFeign create(Throwable throwable) {
        return new IMemberFeign(){

            @Override
            public String getMemberById(Integer id) {
                return "当前人数过多，请稍等查看，海王！！";
            }

            @Override
            public void addMember(Member member) {

            }

            @Override
            public List<Member> getMemberList() {
                return null;
            }

            @Override
            public Member getMemberById2(Integer id) {
                return new Member(-1,"当前人数过多，请稍等查看，海王！！");
            }
        };
    }
}
